﻿using Kanban.Entity;
using Kanban.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Kanban.Business
{
    public class EquipeBusiness
    {
        private EquipeRepository Repository { get; set; }

        public EquipeBusiness()
        {
            this.Repository = new EquipeRepository();
        }

        public List<Equipe> Listar()
        {
            return this.Repository.Listar();
        }

        public List<Equipe> ListarPorUsuario(string nome)
        {
            return this.Repository.ListarPorUsuario(nome);
        }

        public Equipe ObterPorId(int id)
        {
            return this.Repository.ObterPorId(id);
        }

        public void Atualizar(Equipe equipe)
        {
            this.Repository.Atualizar(equipe);
        }

        public void Adicionar(Equipe equipe)
        {
            this.Repository.Adicionar(equipe);
        }

        public void AdicionarUsuario(int idEquipe, Usuario usuario)
        {
            if (this.Repository.ObterPorId(idEquipe) == null)
                throw new Exception(string.Format("A equipe {0} não existe.", idEquipe));

            this.Repository.AdicionarUsuario(idEquipe, usuario);
        }

        public void ExcluirUsuarioPorEquipe(int idEquipe, int idUsuario)
        {
            this.Repository.ExcluirUsuarioPorEquipe(idEquipe, idUsuario);
        }

        public List<Equipe> ObterPorUsuario(int idUsuario)
        {
            return this.Repository.ObterPorUsuario(idUsuario);
        }

        public void Excluir(int id)
        {
            this.Repository.Excluir(id);
        }
    }
}
